from sqlalchemy import Table, Column, Integer, String
from sqlalchemy.orm import mapper
from database import metadata, db_session, init_db, engine
from sqlalchemy import ForeignKey
from sqlalchemy.orm import relationship, backref
from proyecto import Proyecto, proyecto
from usuario import Usuario, usuario
from fase import Fase, fase

class TipoItem(object):
    """ Clase que define el modelo de la tabla tipo de item """
    
    query = db_session.query_property()

    def __init__(self, codigo=None, nombre=None, descripcion=None):
        """ Metodo init """
        self.nombre = nombre
        self.descripcion = descripcion
        self.codigo = codigo

    def __repr__(self):
        return self.nombre

tipoitem = Table('tipoitem', metadata,
    Column('idtipoitem', Integer, primary_key=True),
    Column('codigo', String(3)),
    Column('nombre', String(50)),
    Column('idfase', Integer, ForeignKey('fase.idfase')),
    Column('descripcion', String(250))
)
mapper(TipoItem, tipoitem, properties={
    'fase' : relationship(Fase, backref='tipos')
})